///////////////////////////////////////////////////////////////////////
//  (c) Copyright Honeywell Inc. 2005, All rights reserved.
//
//      Honeywell Access Systems Confidential Proprietary 
//	This file contains proprietary information of Honeywell, Inc. 
//	and may not be copied or used without permission.  This copyright
//	notice does not imply publication.
///////////////////////////////////////////////////////////////////////

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//  
// 	ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
//     
//	This file contains computer generated code, and is not is NOT intended to 
//	be hand edited. The file has been generated from database schema
//	templates. The database schema provide the source information from
//	which this file is created.
//	
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#ifndef DeviceRecord_h
#define DeviceRecord_h

#include "DBRecord.h"


class ConfigDB;

class	DeviceRecord: public DBRecord
{
	public:
	////////////////////////////////////////////////////////////////////
	//Field Name:	RecordID
	//Description:	Device  ID
	UINT8		f_RecordID[2];

	// Get RecordID
	UINT16	RecordID()
	{
		return(Get16(f_RecordID));
	};

	//  Set RecordID
	void RecordID(UINT16 RecordID)
	{
		Set16(f_RecordID, RecordID);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	DeviceType
	//Description:	Device Type
	UINT8		f_DeviceType[2];

	//Contants values for DeviceType
	enum c_DeviceType {SNET=1, ONBOARD=2};

	// Get DeviceType
	UINT16	DeviceType()
	{
		return(Get16(f_DeviceType));
	};

	//  Set DeviceType
	void DeviceType(UINT16 DeviceType)
	{
		Set16(f_DeviceType, DeviceType);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	DeviceClass
	//Description:	Device Class
	UINT8		f_DeviceClass[2];

	//Contants values for DeviceClass
	enum c_DeviceClass {IODEVICECLASS=1, READERCLASS=2, KEYPADCLASS=3};

	// Get DeviceClass
	UINT16	DeviceClass()
	{
		return(Get16(f_DeviceClass));
	};

	//  Set DeviceClass
	void DeviceClass(UINT16 DeviceClass)
	{
		Set16(f_DeviceClass, DeviceClass);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	PhysicalAddress
	//Description:	Physical Address of device
	UINT8		f_PhysicalAddress[2];

	// Get PhysicalAddress
	UINT16	PhysicalAddress()
	{
		return(Get16(f_PhysicalAddress));
	};

	//  Set PhysicalAddress
	void PhysicalAddress(UINT16 PhysicalAddress)
	{
		Set16(f_PhysicalAddress, PhysicalAddress);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	DeviceSubType
	//Description:	Device Sub Type
	UINT8		f_DeviceSubType;

	//Contants values for DeviceSubType
	enum c_DeviceSubType {MIRO2_16=1, MIRO32_0=2, MIRO2_24=3, OBD_FPGA=4, OBD_PSOC=5, OBD_FPGA_READER=6};

	// Get DeviceSubType
	UINT8	DeviceSubType()
	{
		return(f_DeviceSubType);
	};

	//  Set DeviceSubType
	void DeviceSubType(UINT8 DeviceSubType)
	{
		f_DeviceSubType =  DeviceSubType;
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	NumberInputs
	//Description:	Number inputs on device
	UINT8		f_NumberInputs[2];

	// Get NumberInputs
	UINT16	NumberInputs()
	{
		return(Get16(f_NumberInputs));
	};

	//  Set NumberInputs
	void NumberInputs(UINT16 NumberInputs)
	{
		Set16(f_NumberInputs, NumberInputs);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	FirstInput
	//Description:	Number of First Logical Input for device
	UINT8		f_FirstInput[2];

	// Get FirstInput
	UINT16	FirstInput()
	{
		return(Get16(f_FirstInput));
	};

	//  Set FirstInput
	void FirstInput(UINT16 FirstInput)
	{
		Set16(f_FirstInput, FirstInput);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	NumberOutputs
	//Description:	Number inputs on device
	UINT8		f_NumberOutputs[2];

	// Get NumberOutputs
	UINT16	NumberOutputs()
	{
		return(Get16(f_NumberOutputs));
	};

	//  Set NumberOutputs
	void NumberOutputs(UINT16 NumberOutputs)
	{
		Set16(f_NumberOutputs, NumberOutputs);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	FirstOutput
	//Description:	Number of First Logical Output for device
	UINT8		f_FirstOutput[2];

	// Get FirstOutput
	UINT16	FirstOutput()
	{
		return(Get16(f_FirstOutput));
	};

	//  Set FirstOutput
	void FirstOutput(UINT16 FirstOutput)
	{
		Set16(f_FirstOutput, FirstOutput);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	Reserved
	//Description:	Reserved for future
	UINT8		f_Reserved[8];

	// Get Reserved
	unsigned long long	Reserved()
	{
		return(Get64(f_Reserved));
	};

	//  Set Reserved
	void Reserved(unsigned long long Reserved)
	{
		Set64(f_Reserved, Reserved);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	Name
	//Description:	Asci Name of Device
	UINT8		f_Name[nameSize];

	// Get Name
	UINT8 *	Name()
	{
		return(&f_Name[0]);
	};

	//  Set Name
	void Name(UINT8  *pName)
	{
		SetString(f_Name, pName, nameSize);
	};
	////////////////////////////////////////////////////////////////////
	//Field Name:	UpdateCounter
	//Description:	Incremented when a record is updated
	UINT8		f_UpdateCounter;

	// Get UpdateCounter
	UINT8	UpdateCounter()
	{
		return(f_UpdateCounter);
	};

	//  Set UpdateCounter
	void UpdateCounter(UINT8 UpdateCounter)
	{
		f_UpdateCounter =  UpdateCounter;
	};

	//  Format UpdateCounter
	void  FormatRecord(char *pBuff);

	//  Name of table UpdateCounter
	char *  TableName();

	// Set Defaults for UpdateCounter
	static void  SetDefaults(ConfigDB *pConfigDB);
};
#endif  //DeviceRecord_h
